package com.example.demo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 
 * </p>
 *
 * @author yolo
 * @since 2025-03-28
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Message implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 消息id，主键
     */
    private Integer id;

    /**
     * 发送者id
     */
    private Integer senderId;

    /**
     * 接受者id（公众聊天室可为null）
     */
    private Integer receiverId;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 消息类型（0：公聊，1：私聊）
     */
    private Integer type;

    /**
     * 发送时间
     */
    private LocalDateTime createAt;

    /**
     * 是否已读（0：未读，1：已读）
     */
    private Integer isRead;

    /**
     * 发送者名称，不包括在user表中
     */
    @TableField(exist = false)
    private String senderUsername;

    /**
     * 接受者名称，不包括在user表中
     */
    @TableField(exist = false)
    private String receiverUsername;

    public void filter(){
        this.setReceiverId(null);
        this.setSenderId(null);
    }
}
